/*
 * XML Type:  OptionInfo
 * Namespace: http://ofx.net/types/2003/04
 * Java type: net.ofx.types.x2003.x04.OptionInfo
 *
 * Automatically generated - do not modify.
 */
package net.ofx.types.x2003.x04.impl;
/**
 * An XML OptionInfo(@http://ofx.net/types/2003/04).
 *
 * This is a complex type.
 */
public class OptionInfoImpl extends net.ofx.types.x2003.x04.impl.AbstractSecurityInfoImpl implements net.ofx.types.x2003.x04.OptionInfo
{
    
    public OptionInfoImpl(org.apache.xmlbeans.SchemaType sType)
    {
        super(sType);
    }
    
    private static final javax.xml.namespace.QName OPTTYPE$0 = 
        new javax.xml.namespace.QName("", "OPTTYPE");
    private static final javax.xml.namespace.QName STRIKEPRICE$2 = 
        new javax.xml.namespace.QName("", "STRIKEPRICE");
    private static final javax.xml.namespace.QName DTEXPIRE$4 = 
        new javax.xml.namespace.QName("", "DTEXPIRE");
    private static final javax.xml.namespace.QName SHPERCTRCT$6 = 
        new javax.xml.namespace.QName("", "SHPERCTRCT");
    private static final javax.xml.namespace.QName SECID$8 = 
        new javax.xml.namespace.QName("", "SECID");
    private static final javax.xml.namespace.QName ASSETCLASS$10 = 
        new javax.xml.namespace.QName("", "ASSETCLASS");
    private static final javax.xml.namespace.QName FIASSETCLASS$12 = 
        new javax.xml.namespace.QName("", "FIASSETCLASS");
    
    
    /**
     * Gets the "OPTTYPE" element
     */
    public net.ofx.types.x2003.x04.OptionTypeEnum.Enum getOPTTYPE()
    {
        synchronized (monitor())
        {
            check_orphaned();
            org.apache.xmlbeans.SimpleValue target = null;
            target = (org.apache.xmlbeans.SimpleValue)get_store().find_element_user(OPTTYPE$0, 0);
            if (target == null)
            {
                return null;
            }
            return (net.ofx.types.x2003.x04.OptionTypeEnum.Enum)target.getEnumValue();
        }
    }
    
    /**
     * Gets (as xml) the "OPTTYPE" element
     */
    public net.ofx.types.x2003.x04.OptionTypeEnum xgetOPTTYPE()
    {
        synchronized (monitor())
        {
            check_orphaned();
            net.ofx.types.x2003.x04.OptionTypeEnum target = null;
            target = (net.ofx.types.x2003.x04.OptionTypeEnum)get_store().find_element_user(OPTTYPE$0, 0);
            return target;
        }
    }
    
    /**
     * Sets the "OPTTYPE" element
     */
    public void setOPTTYPE(net.ofx.types.x2003.x04.OptionTypeEnum.Enum opttype)
    {
        synchronized (monitor())
        {
            check_orphaned();
            org.apache.xmlbeans.SimpleValue target = null;
            target = (org.apache.xmlbeans.SimpleValue)get_store().find_element_user(OPTTYPE$0, 0);
            if (target == null)
            {
                target = (org.apache.xmlbeans.SimpleValue)get_store().add_element_user(OPTTYPE$0);
            }
            target.setEnumValue(opttype);
        }
    }
    
    /**
     * Sets (as xml) the "OPTTYPE" element
     */
    public void xsetOPTTYPE(net.ofx.types.x2003.x04.OptionTypeEnum opttype)
    {
        synchronized (monitor())
        {
            check_orphaned();
            net.ofx.types.x2003.x04.OptionTypeEnum target = null;
            target = (net.ofx.types.x2003.x04.OptionTypeEnum)get_store().find_element_user(OPTTYPE$0, 0);
            if (target == null)
            {
                target = (net.ofx.types.x2003.x04.OptionTypeEnum)get_store().add_element_user(OPTTYPE$0);
            }
            target.set(opttype);
        }
    }
    
    /**
     * Gets the "STRIKEPRICE" element
     */
    public java.lang.String getSTRIKEPRICE()
    {
        synchronized (monitor())
        {
            check_orphaned();
            org.apache.xmlbeans.SimpleValue target = null;
            target = (org.apache.xmlbeans.SimpleValue)get_store().find_element_user(STRIKEPRICE$2, 0);
            if (target == null)
            {
                return null;
            }
            return target.getStringValue();
        }
    }
    
    /**
     * Gets (as xml) the "STRIKEPRICE" element
     */
    public net.ofx.types.x2003.x04.UnitPriceType xgetSTRIKEPRICE()
    {
        synchronized (monitor())
        {
            check_orphaned();
            net.ofx.types.x2003.x04.UnitPriceType target = null;
            target = (net.ofx.types.x2003.x04.UnitPriceType)get_store().find_element_user(STRIKEPRICE$2, 0);
            return target;
        }
    }
    
    /**
     * Sets the "STRIKEPRICE" element
     */
    public void setSTRIKEPRICE(java.lang.String strikeprice)
    {
        synchronized (monitor())
        {
            check_orphaned();
            org.apache.xmlbeans.SimpleValue target = null;
            target = (org.apache.xmlbeans.SimpleValue)get_store().find_element_user(STRIKEPRICE$2, 0);
            if (target == null)
            {
                target = (org.apache.xmlbeans.SimpleValue)get_store().add_element_user(STRIKEPRICE$2);
            }
            target.setStringValue(strikeprice);
        }
    }
    
    /**
     * Sets (as xml) the "STRIKEPRICE" element
     */
    public void xsetSTRIKEPRICE(net.ofx.types.x2003.x04.UnitPriceType strikeprice)
    {
        synchronized (monitor())
        {
            check_orphaned();
            net.ofx.types.x2003.x04.UnitPriceType target = null;
            target = (net.ofx.types.x2003.x04.UnitPriceType)get_store().find_element_user(STRIKEPRICE$2, 0);
            if (target == null)
            {
                target = (net.ofx.types.x2003.x04.UnitPriceType)get_store().add_element_user(STRIKEPRICE$2);
            }
            target.set(strikeprice);
        }
    }
    
    /**
     * Gets the "DTEXPIRE" element
     */
    public java.lang.String getDTEXPIRE()
    {
        synchronized (monitor())
        {
            check_orphaned();
            org.apache.xmlbeans.SimpleValue target = null;
            target = (org.apache.xmlbeans.SimpleValue)get_store().find_element_user(DTEXPIRE$4, 0);
            if (target == null)
            {
                return null;
            }
            return target.getStringValue();
        }
    }
    
    /**
     * Gets (as xml) the "DTEXPIRE" element
     */
    public net.ofx.types.x2003.x04.DateTimeType xgetDTEXPIRE()
    {
        synchronized (monitor())
        {
            check_orphaned();
            net.ofx.types.x2003.x04.DateTimeType target = null;
            target = (net.ofx.types.x2003.x04.DateTimeType)get_store().find_element_user(DTEXPIRE$4, 0);
            return target;
        }
    }
    
    /**
     * Sets the "DTEXPIRE" element
     */
    public void setDTEXPIRE(java.lang.String dtexpire)
    {
        synchronized (monitor())
        {
            check_orphaned();
            org.apache.xmlbeans.SimpleValue target = null;
            target = (org.apache.xmlbeans.SimpleValue)get_store().find_element_user(DTEXPIRE$4, 0);
            if (target == null)
            {
                target = (org.apache.xmlbeans.SimpleValue)get_store().add_element_user(DTEXPIRE$4);
            }
            target.setStringValue(dtexpire);
        }
    }
    
    /**
     * Sets (as xml) the "DTEXPIRE" element
     */
    public void xsetDTEXPIRE(net.ofx.types.x2003.x04.DateTimeType dtexpire)
    {
        synchronized (monitor())
        {
            check_orphaned();
            net.ofx.types.x2003.x04.DateTimeType target = null;
            target = (net.ofx.types.x2003.x04.DateTimeType)get_store().find_element_user(DTEXPIRE$4, 0);
            if (target == null)
            {
                target = (net.ofx.types.x2003.x04.DateTimeType)get_store().add_element_user(DTEXPIRE$4);
            }
            target.set(dtexpire);
        }
    }
    
    /**
     * Gets the "SHPERCTRCT" element
     */
    public java.lang.String getSHPERCTRCT()
    {
        synchronized (monitor())
        {
            check_orphaned();
            org.apache.xmlbeans.SimpleValue target = null;
            target = (org.apache.xmlbeans.SimpleValue)get_store().find_element_user(SHPERCTRCT$6, 0);
            if (target == null)
            {
                return null;
            }
            return target.getStringValue();
        }
    }
    
    /**
     * Gets (as xml) the "SHPERCTRCT" element
     */
    public net.ofx.types.x2003.x04.SharesPerType xgetSHPERCTRCT()
    {
        synchronized (monitor())
        {
            check_orphaned();
            net.ofx.types.x2003.x04.SharesPerType target = null;
            target = (net.ofx.types.x2003.x04.SharesPerType)get_store().find_element_user(SHPERCTRCT$6, 0);
            return target;
        }
    }
    
    /**
     * Sets the "SHPERCTRCT" element
     */
    public void setSHPERCTRCT(java.lang.String shperctrct)
    {
        synchronized (monitor())
        {
            check_orphaned();
            org.apache.xmlbeans.SimpleValue target = null;
            target = (org.apache.xmlbeans.SimpleValue)get_store().find_element_user(SHPERCTRCT$6, 0);
            if (target == null)
            {
                target = (org.apache.xmlbeans.SimpleValue)get_store().add_element_user(SHPERCTRCT$6);
            }
            target.setStringValue(shperctrct);
        }
    }
    
    /**
     * Sets (as xml) the "SHPERCTRCT" element
     */
    public void xsetSHPERCTRCT(net.ofx.types.x2003.x04.SharesPerType shperctrct)
    {
        synchronized (monitor())
        {
            check_orphaned();
            net.ofx.types.x2003.x04.SharesPerType target = null;
            target = (net.ofx.types.x2003.x04.SharesPerType)get_store().find_element_user(SHPERCTRCT$6, 0);
            if (target == null)
            {
                target = (net.ofx.types.x2003.x04.SharesPerType)get_store().add_element_user(SHPERCTRCT$6);
            }
            target.set(shperctrct);
        }
    }
    
    /**
     * Gets the "SECID" element
     */
    public net.ofx.types.x2003.x04.SecurityId getSECID()
    {
        synchronized (monitor())
        {
            check_orphaned();
            net.ofx.types.x2003.x04.SecurityId target = null;
            target = (net.ofx.types.x2003.x04.SecurityId)get_store().find_element_user(SECID$8, 0);
            if (target == null)
            {
                return null;
            }
            return target;
        }
    }
    
    /**
     * True if has "SECID" element
     */
    public boolean isSetSECID()
    {
        synchronized (monitor())
        {
            check_orphaned();
            return get_store().count_elements(SECID$8) != 0;
        }
    }
    
    /**
     * Sets the "SECID" element
     */
    public void setSECID(net.ofx.types.x2003.x04.SecurityId secid)
    {
        synchronized (monitor())
        {
            check_orphaned();
            net.ofx.types.x2003.x04.SecurityId target = null;
            target = (net.ofx.types.x2003.x04.SecurityId)get_store().find_element_user(SECID$8, 0);
            if (target == null)
            {
                target = (net.ofx.types.x2003.x04.SecurityId)get_store().add_element_user(SECID$8);
            }
            target.set(secid);
        }
    }
    
    /**
     * Appends and returns a new empty "SECID" element
     */
    public net.ofx.types.x2003.x04.SecurityId addNewSECID()
    {
        synchronized (monitor())
        {
            check_orphaned();
            net.ofx.types.x2003.x04.SecurityId target = null;
            target = (net.ofx.types.x2003.x04.SecurityId)get_store().add_element_user(SECID$8);
            return target;
        }
    }
    
    /**
     * Unsets the "SECID" element
     */
    public void unsetSECID()
    {
        synchronized (monitor())
        {
            check_orphaned();
            get_store().remove_element(SECID$8, 0);
        }
    }
    
    /**
     * Gets the "ASSETCLASS" element
     */
    public net.ofx.types.x2003.x04.AssetClassEnum.Enum getASSETCLASS()
    {
        synchronized (monitor())
        {
            check_orphaned();
            org.apache.xmlbeans.SimpleValue target = null;
            target = (org.apache.xmlbeans.SimpleValue)get_store().find_element_user(ASSETCLASS$10, 0);
            if (target == null)
            {
                return null;
            }
            return (net.ofx.types.x2003.x04.AssetClassEnum.Enum)target.getEnumValue();
        }
    }
    
    /**
     * Gets (as xml) the "ASSETCLASS" element
     */
    public net.ofx.types.x2003.x04.AssetClassEnum xgetASSETCLASS()
    {
        synchronized (monitor())
        {
            check_orphaned();
            net.ofx.types.x2003.x04.AssetClassEnum target = null;
            target = (net.ofx.types.x2003.x04.AssetClassEnum)get_store().find_element_user(ASSETCLASS$10, 0);
            return target;
        }
    }
    
    /**
     * True if has "ASSETCLASS" element
     */
    public boolean isSetASSETCLASS()
    {
        synchronized (monitor())
        {
            check_orphaned();
            return get_store().count_elements(ASSETCLASS$10) != 0;
        }
    }
    
    /**
     * Sets the "ASSETCLASS" element
     */
    public void setASSETCLASS(net.ofx.types.x2003.x04.AssetClassEnum.Enum assetclass)
    {
        synchronized (monitor())
        {
            check_orphaned();
            org.apache.xmlbeans.SimpleValue target = null;
            target = (org.apache.xmlbeans.SimpleValue)get_store().find_element_user(ASSETCLASS$10, 0);
            if (target == null)
            {
                target = (org.apache.xmlbeans.SimpleValue)get_store().add_element_user(ASSETCLASS$10);
            }
            target.setEnumValue(assetclass);
        }
    }
    
    /**
     * Sets (as xml) the "ASSETCLASS" element
     */
    public void xsetASSETCLASS(net.ofx.types.x2003.x04.AssetClassEnum assetclass)
    {
        synchronized (monitor())
        {
            check_orphaned();
            net.ofx.types.x2003.x04.AssetClassEnum target = null;
            target = (net.ofx.types.x2003.x04.AssetClassEnum)get_store().find_element_user(ASSETCLASS$10, 0);
            if (target == null)
            {
                target = (net.ofx.types.x2003.x04.AssetClassEnum)get_store().add_element_user(ASSETCLASS$10);
            }
            target.set(assetclass);
        }
    }
    
    /**
     * Unsets the "ASSETCLASS" element
     */
    public void unsetASSETCLASS()
    {
        synchronized (monitor())
        {
            check_orphaned();
            get_store().remove_element(ASSETCLASS$10, 0);
        }
    }
    
    /**
     * Gets the "FIASSETCLASS" element
     */
    public java.lang.String getFIASSETCLASS()
    {
        synchronized (monitor())
        {
            check_orphaned();
            org.apache.xmlbeans.SimpleValue target = null;
            target = (org.apache.xmlbeans.SimpleValue)get_store().find_element_user(FIASSETCLASS$12, 0);
            if (target == null)
            {
                return null;
            }
            return target.getStringValue();
        }
    }
    
    /**
     * Gets (as xml) the "FIASSETCLASS" element
     */
    public net.ofx.types.x2003.x04.GenericNameType xgetFIASSETCLASS()
    {
        synchronized (monitor())
        {
            check_orphaned();
            net.ofx.types.x2003.x04.GenericNameType target = null;
            target = (net.ofx.types.x2003.x04.GenericNameType)get_store().find_element_user(FIASSETCLASS$12, 0);
            return target;
        }
    }
    
    /**
     * True if has "FIASSETCLASS" element
     */
    public boolean isSetFIASSETCLASS()
    {
        synchronized (monitor())
        {
            check_orphaned();
            return get_store().count_elements(FIASSETCLASS$12) != 0;
        }
    }
    
    /**
     * Sets the "FIASSETCLASS" element
     */
    public void setFIASSETCLASS(java.lang.String fiassetclass)
    {
        synchronized (monitor())
        {
            check_orphaned();
            org.apache.xmlbeans.SimpleValue target = null;
            target = (org.apache.xmlbeans.SimpleValue)get_store().find_element_user(FIASSETCLASS$12, 0);
            if (target == null)
            {
                target = (org.apache.xmlbeans.SimpleValue)get_store().add_element_user(FIASSETCLASS$12);
            }
            target.setStringValue(fiassetclass);
        }
    }
    
    /**
     * Sets (as xml) the "FIASSETCLASS" element
     */
    public void xsetFIASSETCLASS(net.ofx.types.x2003.x04.GenericNameType fiassetclass)
    {
        synchronized (monitor())
        {
            check_orphaned();
            net.ofx.types.x2003.x04.GenericNameType target = null;
            target = (net.ofx.types.x2003.x04.GenericNameType)get_store().find_element_user(FIASSETCLASS$12, 0);
            if (target == null)
            {
                target = (net.ofx.types.x2003.x04.GenericNameType)get_store().add_element_user(FIASSETCLASS$12);
            }
            target.set(fiassetclass);
        }
    }
    
    /**
     * Unsets the "FIASSETCLASS" element
     */
    public void unsetFIASSETCLASS()
    {
        synchronized (monitor())
        {
            check_orphaned();
            get_store().remove_element(FIASSETCLASS$12, 0);
        }
    }
}
